package com.itjiange;

/**
 * 观察者模式：定义了对象之间的一对多依赖，这样一来，当一个对象改变状态时，它的所有依
 * 赖者都会收到通知并自动更新。
 *
 * @author ItJianGe
 * @data 2024/8/21 10:37
 */
public class ObserverMain {
    public static void main(String[] args) {

        // 1. 初始化
        Subject subject = new SubjectImpl();
        Observer observer1 = new Observer1();
        Observer observer2 = new Observer2();
        Observer observer3 = new Observer3();

        // 2. 添加观察者
        subject.addObserver(observer1);
        subject.addObserver(observer2);
        subject.addObserver(observer3);

        System.out.println("----------通知三个观察者---------");
        subject.notifyObserver();

        System.out.println("----------移除 observer2，通知其他两个观察者---------");
        subject.removeObserver(observer2);
        subject.notifyObserver();
    }
}